// ~ CopyRight © 2012 China Mobile Group Anhui CO.,LTD All Rights Reserved.

package com.cmcc.zysoft.infocollection.util;

import java.util.Date;
import java.util.Random;

/**
 * 密码随机生成类.
 * @author 程川
 * <br />邮箱： cmzcheng@gmail.com
 * <br />描述：
 * <br />@version:1.0.0
 * <br />日期： 2013-7-15 下午7:01:56
 * <br />CopyRight © 2012 chinaMobile.ahcmcc
 */

public class RandPass {
	
	/**
	 * @param pwdLen 密码长度.
	 * @return String
	 */
	public static String genRandomNum(int pwdLen) {
		// 35是因为数组是从0开始的，26个字母+10个数字
		final int maxNum = 36;
		int i; // 生成的随机数
		int count = 0; // 生成的密码的长度
		char[] str = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
				'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
				'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };

		StringBuffer pwd = new StringBuffer("");
		Random r = new Random();
		while (count < pwdLen) {
			// 生成随机数，取绝对值，防止生成负数，

			i = Math.abs(r.nextInt(maxNum)); // 生成的数最大为36-1

			if (i >= 0 && i < str.length) {
				pwd.append(str[i]);
				count++;
			}
		}

		return pwd.toString();
	}

	/**
	 * 截取随机数的前12位.
	 * @return String
	 */
	private static String genRandomShopId() {
	    Random rm = new Random();
	    //获得随机数
	    Long pross = Math.abs(rm.nextLong());
	    //将获得的获得随机数转化为字符串
	    String fixLenthString = String.valueOf(pross);
	    //返回固定的长度为12的随机数
	    return fixLenthString.substring(0, 12);
	}
	
	/**
	 * 截取当前时间毫秒数的前12位.
	 * @return String
	 */
	public static String generateShopId() {
		String date = String.valueOf(new Date().getTime());
		return date.substring(0, 12);
	}
	
	public static void main(String[] args) {
		System.out.println(genRandomShopId());
		System.out.println(genRandomShopId().length());
		System.out.println(generateShopId());
	}
}
